home *** CD-ROM | disk | FTP | other *** search
/ PC Play 129 / pc play 129.iso / Demo / man2 / man2.exe / data / scripts / bomber_alien_scripts.lua < prev    next >
Encoding:
Text File  |  2006-08-31  |  6.1 KB  |  178 lines

  1.  
  2. function units_bomber_alien_select()
  3.     units_select(12)
  4. end
  5.  
  6. function units_bomber_alien_unselect()
  7.     units_unselect()
  8. end
  9.  
  10. function units_bomber_alien_selectenemy()
  11.     uniGetExecutor():addSimpleEffect(ENET_EFFECT_SELECTEDGEOMETRY_ENEMY)
  12. end
  13.  
  14. function units_bomber_alien_damaged()
  15.     uniGetExecutor():applyDamage(uniGetLife())
  16. end
  17.  
  18. function units_bomber_alien_highlight()
  19.     uniGetExecutor():addEffectWithRadius(ENET_EFFECT_GEOMETRY_HIGHLIGHT,15)
  20. end
  21.  
  22. function units_bomber_alien_setup()
  23.     local bomber = uniGetExecutor()
  24.     bomber:addSimpleEffect(ENET_EFFECT_PS_ENVIRONMENT_SPOTLIGHT_RED4):setLocalPosition(-17,10,-9)
  25.     bomber:addSimpleEffect(ENET_EFFECT_PS_ENVIRONMENT_SPOTLIGHT_RED4):setLocalPosition(17,10,-9)
  26.     
  27.     bomber:setTransformOwner(units_findfreefirespot(uniGetTarget(),1))
  28.     bomber:setLocalPosition(0,0,0)
  29.     units_reloadfirespots(bomber,1,ENET_EFFECT_BULLET_BOMB)
  30.     bomber:setVisibility(true,true)
  31.     bomber:addSimpleEffect(ENET_EFFECT_BOUNDEDTEXT)
  32.     bomber:addSimpleEffect(ENET_EFFECT_GEOMETRY_AIRALIENSHADOW)
  33.  
  34. end
  35.  
  36. function units_bomber_alien_fire()
  37.     local unit = uniGetExecutor()
  38.     local base = unit:getTransformOwner()
  39.     local target = uniGetTarget()
  40.  
  41.     uniSetLife(uniGetLife() / 3.0)
  42.  
  43.     local holders = {}
  44.     holders[0] = enHolder:new(target)
  45.     holders[1] = enHolder:new(base,HT_CARGOSPACE)
  46.  
  47.     unit:setTransformOwner()
  48.  
  49.     local enginePS = {}
  50.     enginePS[0] = unit:getBone(ENBT_STEPEMITTER,0):addSimpleEffect(ENET_EFFECT_PS_ALIENAIR_TRAY)
  51.     enginePS[1] = unit:getBone(ENBT_STEPEMITTER,1):addSimpleEffect(ENET_EFFECT_PS_ALIENAIR_TRAY)
  52.  
  53.     local sound = unit:play3DSound("air_move.wav",1)
  54.  
  55.     waitDeath(unit:addMoveEffect(ENET_EFFECT_MOVE_AIRSMOOTH,100,uniGetTarget()))
  56.  
  57.     local firespot = unit:getBone(ENBT_FIRE1,0)
  58.  
  59.     local mover = unit:addMoveEffect(ENET_EFFECT_MOVE_AIRSMOOTH,100,base)
  60.     holders[3] = enHolder:new(mover);
  61.  
  62.     firespot:findEffect(ENET_EFFECT_BULLET_BOMB):executeCommand(ENC_FIRE1)
  63.     pause(0.2)
  64.     firespot:addSimpleEffect(ENET_EFFECT_BULLET_BOMB):executeCommand(ENC_FIRE1)
  65.     pause(0.2)
  66.     firespot:addSimpleEffect(ENET_EFFECT_BULLET_BOMB):executeCommand(ENC_FIRE1)
  67.     pause(0.2)
  68.     firespot:addSimpleEffect(ENET_EFFECT_BULLET_BOMB)
  69.     waitDeath(mover)
  70.  
  71.     enginePS[0]:suspendedDestroy(2.0);
  72.     enginePS[1]:suspendedDestroy(2.0);
  73.  
  74.     waitDeath(unit:addRotationEffect(ENET_EFFECT_ROTATE_AIRHORIZONTALORIENT,1.57))
  75.     waitDeath(unit:addMoveEffect(ENET_EFFECT_MOVE_LINEARFLYTOOWNER,100,base))
  76.     unit:setTransformOwner(base)
  77.     sound:destroy()
  78.     unit:addFireArrow()
  79. end
  80.  
  81. function units_bomber_alien_move()
  82.     local bomber = uniGetExecutor()
  83.     bomber:setTransformOwner()
  84.  
  85.     local enginePS = {}
  86.     enginePS[0] = bomber:getBone(ENBT_STEPEMITTER,0):addSimpleEffect(ENET_EFFECT_PS_ALIENAIR_TRAY)
  87.     enginePS[1] = bomber:getBone(ENBT_STEPEMITTER,1):addSimpleEffect(ENET_EFFECT_PS_ALIENAIR_TRAY)
  88.  
  89.     local holder = enHolder:new(uniGetTarget())
  90.     local base = units_findfreefirespot(uniGetTarget(),1)
  91.     local placeHolder = enHolder:new(base,HT_CARGOSPACE)
  92.     local sound = bomber:play3DSound("air_move.wav",1)
  93.     waitDeath(bomber:addMoveEffect(ENET_EFFECT_MOVE_AIRSMOOTH,100,base))
  94.     sound:destroy()
  95.     bomber:play3DSound("air_stop.wav",0):destroy()
  96.  
  97.     enginePS[0]:suspendedDestroy(2.0);
  98.     enginePS[1]:suspendedDestroy(2.0);
  99.  
  100.     waitDeath(bomber:addRotationEffect(ENET_EFFECT_ROTATE_AIRHORIZONTALORIENT,1.57))
  101.     waitDeath(bomber:addMoveEffect(ENET_EFFECT_MOVE_LINEARFLYTOOWNER,100,base))
  102.     bomber:setTransformOwner(base)
  103. end
  104.  
  105. function units_bomber_alien_explode()
  106.     local bomber = uniGetExecutor()
  107.     bomber:setTransformOwner()
  108.     bomber:play3DSound("bigunitexplode.wav",0):destroy()
  109.     local ps_explode = bomber:addSimpleEffect(ENET_EFFECT_PS_BOMBEREXPLODE)
  110.     ps_explode:setTransformOwner()
  111.     pause(0.5)
  112.     bomber:setVisibility(false,false)
  113.     pause(0.5)
  114.     ps_explode:suspendedDestroy(6.5)
  115.     --pause(1.2)
  116. end
  117.  
  118. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_SETUP,"units_bomber_alien_setup")
  119. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_RESETUP,"units_bomber_alien_setup")
  120. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_FIRE1,"units_bomber_alien_fire")
  121. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_FIRE2,"units_bomber_alien_fire")
  122. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_MOVE,"units_bomber_alien_move")
  123. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_EXPLODE,"units_bomber_alien_explode")
  124. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_SELECT,"units_bomber_alien_select")
  125. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_SELECTENEMY,"units_bomber_alien_selectenemy")
  126. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_UNSELECT,"units_bomber_alien_unselect")
  127. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_DAMAGED,"units_bomber_alien_damaged")
  128. registerCommand(ENSCRIPTSET_BULLET_AIR_ALIEN,ENC_HIGHLIGHT,"units_bomber_alien_highlight")
  129.  
  130. -- make description of unit
  131. desc = getEffectDescriptionP(ENET_UNIT_AIR_ALIEN)
  132. desc.ClassID = ENCLASS_MESHINSTANCE
  133. desc.EffectClassType = ENECT_GEOMETRY
  134. desc.FileName = "air_alien.rmd"
  135. desc.ScriptSet = ENSCRIPTSET_BULLET_AIR_ALIEN
  136. desc.MoveType = ENMOVE_FLY
  137. desc.RenderType = ENRENDERTYPE_GEOMETRY
  138. desc.Material = ENMAT_RIGIDSKINNEDMESH
  139. desc.MaterialColors = units_materialcolors_human
  140.  
  141. -- shadow
  142. desc = getEffectDescriptionP(ENET_EFFECT_GEOMETRY_AIRALIENSHADOW)
  143. desc.ClassID = ENCLASS_MESHINSTANCE
  144. desc.EffectClassType = ENECT_GEOMETRY
  145. desc.FileName = "air_alien_shadow.rmd"
  146. desc.RenderType = ENRENDERTYPE_SHADOW
  147. desc.Material = ENMAT_SHADOW
  148. desc.MaterialColors = units_materialcolors_shadow
  149.  
  150. -- register new unit to logic
  151. unitDesc = logic_getUnitDescP(24)
  152. unitDesc.group = 2
  153. unitDesc.order = 4
  154. unitDesc.unit_res_id = ENET_UNIT_AIR_ALIEN
  155. unitDesc.unit_icon_id = "Air_a_small_normal.dds"
  156. unitDesc.active_id = "Air_a_small_active.dds"
  157. unitDesc.pressed_id = "Air_a_small_pressed.dds"
  158. unitDesc.small_icon_id = "Fighter_l_stats.dds"
  159. unitDesc.big_icon_id = "Air_a_big_normal.dds"
  160. unitDesc.HP = 1
  161. unitDesc.MP = 120
  162. unitDesc.WR = 6
  163. unitDesc.min_WR = 1
  164. unitDesc.WD = 1
  165. unitDesc.WR2 = 0
  166. unitDesc.min_WR2 = 0
  167. unitDesc.WD2 = 0
  168. unitDesc.ability = 4
  169. unitDesc.transport = 0
  170. unitDesc.value = 3
  171. unitDesc.race = 1
  172. unitDesc.fire_pause = 10.0
  173. unitDesc.move_pause = 10.0
  174. unitDesc.unit_info_scale = 0.10
  175. unitDesc.scn_name = "AIRA"
  176.  
  177.  
  178.